require"import"
import"android.content.Context"
import"android.content.Intent"
import"java.util.Locale"
import"android.speech.SpeechRecognizer"
import"android.speech.RecognitionListener"
import"android.speech.RecognizerIntent"

function destroySpeechRecognizer(rec)
if rec then
rec.destroy()
rec=nil
end
return true
end

function startSpeechRecognition()
local speechRecognizer=SpeechRecognizer.createSpeechRecognizer(this)

local recognitionListener=RecognitionListener{onResults=function(results)
local resultArray=results.getParcelableArrayList(SpeechRecognizer.RESULTS_RECOGNITION)
if resultArray~=nil and resultArray.size()>0 then
local recognizedText=resultArray.get(0)

local editText=service.getEditText()
service.insertText(editText,recognizedText.."। ")
service.speak(recognizedText)
end
destroySpeechRecognizer(speechRecognizer)
end,
onError=function()
destroySpeechRecognizer(speechRecognizer)
return false
end}

local recognizerIntent=Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM)
	recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,"hi-IN")
recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,this.getPackageName())
speechRecognizer.startListening(recognizerIntent)
speechRecognizer.setRecognitionListener(recognitionListener)

return true
end

startSpeechRecognition()